跳到主要内容

NC52 有效括号序列

https://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2

这题算是有思路,但是要写出来还是有点难啊,真不知道那些大佬是如何把代码写的那么简洁,,,,看来只能多练了

func isValid(s string) bool {
arr := []byte(s)
stack := list.New()
for _, v := range arr {
if v == '(' {
stack.PushBack(')')
} else if v == '{' {
stack.PushBack('}')
} else if v == '[' {
stack.PushBack(']')
} else if stack.Len() == 0 || stack.Remove(stack.Back()) != int32(v) {
return false
}
}

return stack.Len() == 0
}

说来,这里有个 Golang 的坑,上面那个 list 插入字符类型隐式转换成了 int32 类型,不能直接和 byte 类型比较(int8),所以需要转成 int32 才能比较